Information on data:

The following data is on New Orleans tornado building damage during December 2022. This data was obtained from Verisk Analytics and it was derived computer vision and machine learning using post-catastrophe aerial imagry data. There are approximately 42,000 buildings in this dataset.


Clean data:

I converted roof_solar into a T/F statement, by converting “SOLAR PANEL” to TRUE and “NO SOLAR PANEL” to FALSE. In addition to this, I converted the roof shapes that the computer wasn’t very sure about (up to a 20% chance of being incorrect) into NA. There were some cells in damage_level where they were filled with an empty character, so I converted that into NA as well. I then separated longitude and latitude so that it could be easily read into leaflet.


Define damage categories:

Catastrophe scores are separated by the summary of the dataset, excluding the catastrophe scores of 0.

mostdamage <- df %>% filter(catastrophescore >= 50)
nodamage <- df %>% filter(catastrophescore == 0)
decimated <-df %>% filter(catastrophescore == 100)
middamage <- df %>% filter(catastrophescore < 50 & catastrophescore >= 15)
leastdamage <- df %>% filter(catastrophescore < 15 & catastrophescore >= 2)
minimaldamage <- df %>% filter(catastrophescore == 1)

Function for adding labels to the maps:

create_popup <- function(data) {
  paste("<b>Location</b><br>",
        "&nbsp;&nbsp;&nbsp;Longitude: ", data$long, "<br>",
        "&nbsp;&nbsp;&nbsp;Latitude: ", data$lat, "<br>",
        "<b>Catastrophe Score</b><br>",
        "&nbsp;&nbsp;&nbsp;Score: ", data$catastrophescore, "<br>",
        "<b>Roof Shape</b><br>",
        "&nbsp;&nbsp;&nbsp;Shape: ", str_to_title(data$roofshape), "<br>",
        "<b>Roof Material</b><br>",
        "&nbsp;&nbsp;&nbsp;Material: ", str_to_title(data$roofmateri), "<br>")
}

Damage maps:

This shows all of the damage points, the vast majority of roofs have no damage.


These are the buildings that sustained damage

Red indicates the buildings that were the most damaged (catastrophe score >= 50), orange indicates (25 < catastrophe score < 50), blue indicates (catastrophe score <= 25, excluding scores of 0). The majority of the buildings (3852) exhibited a catastrophe score of 0.

Map of the buildings that experienced damage:

Map of the buildings that experienced the most damage:

Map of the buildings that experienced mid damage:

Map of the buildings that experienced the least damage:

Map of the buildings that experienced no damage:

Map of the buildings that experienced no damage and the most damage:


Models:

## # Comparison of Model Performance Indices
## 
## Name | Model |  AIC (weights) | AICc (weights) |  BIC (weights) |    R2 |  RMSE | Sigma
## ---------------------------------------------------------------------------------------
## mod3 |   glm | 8066.6 (>.999) | 8066.8 (>.999) | 8122.3 (>.999) | 0.097 | 7.508 | 7.540
## mod4 |   glm | 8089.7 (<.001) | 8090.7 (<.001) | 8211.2 (<.001) | 0.099 | 7.499 | 7.574
## mod5 |   glm | 8089.7 (<.001) | 8090.7 (<.001) | 8211.2 (<.001) | 0.099 | 7.499 | 7.574
## catastrophescore ~ long + lat + enclosure + roofmateri + roofsolar + 
##     rooftree + roofshape
## <environment: 0x1382e3350>
## catastrophescore ~ long + lat + roofshape + rooftree + roofmateri + 
##     trampoline * deck * pool * enclosure * divingboar * waterslide * 
##         playground * sportcourt * primarystr * roofsolar
## <environment: 0x1381137e8>
## catastrophescore ~ long + lat + trampoline * deck * pool * enclosure * 
##     divingboar * waterslide * playground * sportcourt * primarystr * 
##     roofsolar + roofmateri + roofshape + rooftree
## <environment: 0x13d8d9200>

Check models

Model 3

Model 4

Model 5


Predictions:

I’m planning to add predictions and additional plots for the completed final project.


Interpretations of predictions and models used:

This will also be updated.